home *** CD-ROM | disk | FTP | other *** search
/ Joystick Magazine 2003 October / Joy152 - CD2.iso / utilitaires / x2alpha.zip / alpha.txt next >
Text File  |  2003-08-30  |  35KB  |  380 lines

  1. //////////////////////////////////////////////////////////
  2. // xplorer▓ alpha project
  3. // (not for the faint-hearted)
  4. // 30.August.2003
  5.  
  6.  
  7. LATEST INFORMATION [0.0.0.42] ---------------
  8.  
  9. Nearly the end of summer (feels like winter in London already). Totally irrelevant this :)
  10. Let's talk about the goodies on offer.
  11.  
  12. PASTE SPECIAL COMMANDS. You'll find them in the Edit and default context menus. Hard linking was available already but you get 2 more interesting items. The first allows one to paste only subfolders (dir structure) assuming that one or more folders were copied earlier. The second is a mouthful to pronounce (structured scrap clips) but it can get fairly useful when copying items from scrap frames. It will be best demonstrated with an example.
  13.  
  14. Say you have 2 items in a scrap frame, c:\t1.txt and c:\temp\t2.txt. If you <Ctrl+C>'d them and then pasted them on d:\folder\ then both files would end up in the same location (d:\folder). With the new paste special command, t1.txt would be in d:\folder but t2.txt would end up in d:\folder\temp\, maintaining its original relative position to t1.txt. Goes without saying that x2 automatically creates any folders as necessary.
  15.  
  16.  
  17. SUBFOLDER SIZES. Pressing <Alt+D> calculates the total size of folders (i.e. all the files contained in them and in any subfolders thereof) and associates it with folder items. Hence in detailed view you'll see the actual size instead of <folder>. Quite useful for stats boffins :) and half-way to a fully blown folder data command as in 2xExplorer.
  18.  
  19.  
  20. BOOLEAN SEARCHES. This is a star attraction. The "find in files" command now supports simple boolean expressions comprising AND/OR/NOT clauses. Sorry no complicated expressions, brackets or NEAR operands. But it is quite useful nevertheless.
  21.  
  22. The syntax is exactly like the multiple wildcard patterns supported in 2x and x2 "Mark" commands. You specify comma-separated substrings with optional leading +/- characters for AND/NOT, respectively. Here are a few examples:
  23.  
  24. foo,bar    Matches files that contain either "foo" OR "bar" or both (I mean in their data, not their name)
  25. +foo,+bar  Matches files that contain both "foo" AND "bar"
  26. foo,-bar   Matches files that contain "foo" but NOT "bar"
  27.  
  28. I think google searches go something like this too. Without any special leading character the substring is considered "OR". The special characters +/- are only special in the leading position, otherwise they are taken literally, e.g. "1+2" will match "1+2" without any boolean connotations.
  29.  
  30. If you want to search for commas then just escape them with $2C (conveniently available through the "special characters" combo in the grep dialog). If you want to escape +/- in a leading position just use "++" and "+-" respectively. If you want spaces in the beginning or the end of a substring you can use a leading + or a few $20 codes.
  31.  
  32. Editor▓ doesn't need to understand boolean searches but x2 still tries its best to feed the actual matching substring for each file viewed following a grep command. It doesn't work if you open more than one file at a time though -- when such files match different substrings in the expression. It would be a pity if I had to do a special update to ed▓ too...
  33.  
  34. Finally the whole search algorithm has got much faster especially for case-insensitive searches that take longer than case-sensitive ones. Naturally, the more substrings in an expression, the longer it will take to execute the command, but that is to be expected, no?
  35.  
  36. Boolean text searches will be included in the proper "Find files" command too, a subject we will be discussing in the near future!
  37.  
  38.  
  39.  
  40. LATEST INFORMATION [0.0.0.39] ---------------
  41.  
  42. Evan I am beginning to forget what went in xplorer▓ during the last few builds, so here's a summary of the new commands added in the various menus:
  43.  
  44. INTEGRATION WITH THE ALL-NEW EDITOR▓. Not only do these programs share the find text (grep) settings, the communication is intelligent too. So whenever you press F3 and given that you provide the path to ed▓ in the registry (szEditor2Path) the view and edit (F3/F4) commands will be lightingly fast, almost as fast and resource friendly as the internal viewer in 2x. You can now delete the external viewer etc keys (szExternalEditor/Viewer) or keep them for use with Ctrl+F3 modifiers.
  45.  
  46. STORE SELECTION. 2x's selection "clipboard" is reinstated. You can even use it in scrap frames
  47.  
  48. ITEM SORTING. Sorted, including the fancy arrow in the header.
  49.  
  50. WINDOW SWITCHING. Ctrl+W will pop up a menu with all the top-level windows in a x▓ process, for easy switching.
  51.  
  52. COPY COLUMNS. This command copies the contents of the active pane (selected items) as they are seen. It is really useful in detailed view where you get all the column info in a tab-separated format. Then you only need to paste them somewhere (e.g. notepad) for printing etc.
  53.  
  54. SAVE SETTINGS NOW. For those who don't like to leave "save settings on exit" checked
  55.  
  56. FREE SPACE. Alt+Space shows the free space on the status bar. This is rather more efficient on resources than having a permanent status bar pane for it.
  57.  
  58. TITLE BAR. The controversy regarding individual pane title bars is now over. If you want each pane to show its path just add the number 8 (DPF_SHOWHEADERS) to the mainframe's binDualPaneFlags registry value. Without it you get the minimalist display with the complimentary headache trying to figure out which @"%$% path you are browsing :)
  59.  
  60.  
  61.  
  62. LATEST INFORMATION [0.0.0.33] ---------------
  63.  
  64. I've been a bit lazy wrt documenting the new features lately, so here I'll summarize all the big things that happened since build x.29:
  65.  
  66. SYNC WIZARD
  67. <Ctrl+F9> will popup a dialog that lets you select how the synchronization command performs. From there you can select to synchronize on dates or contents and pick which items you want to select. <Alt+F9> quickly repeats the last synchronization without showing the dialog. Plain <F9> as usual selects new+modified items based on modification dates.
  68.  
  69. Synchronization in scrap frames got a bit better too, since scraps now try harder to identify which folders to match for comparisons. Thus relatively free-form synchronizations are possible, but keep in mind that scraps compare folders and not individual items (see the DBMON output as this command is executed).
  70.  
  71.  
  72. BUILD CHECKER
  73. Nice one! It's like synchronization but instead of comparing identical names it compares source and derivative (transformed) files. It is a little bit like the "make" command in that it checks whether some source files have been "transformed" and selects them accordingly. The programmers in the audience will know what this is for.
  74.  
  75. The dialog that pops up with <Ctrl+F12> allows you to specify the conversion rule to be checked. You type the source and target filename extensions or select one of the built-in samples (you can enter more yourselves in the registry). For example, the rule from "*.cpp" to "obj" checks for the compilation of C++ files. It works a little bit like this: For each *.cpp source file in the active pane (say kenny.cpp) the "product" (compiled) filename is composed (kenny.obj) and is located in the inactive pane. These 2 items are then compared by modification dates; if the source is newer it requires "building" and can be marked automatically for you gratis x2. Then it's up to you to decide what to do with the items identified.
  76.  
  77. Of course this is rather simplistic and it can't check for complicated dependency patterns (headers etc) like the make command does, but it's useful nevertheless -- it is for me anyway! :)
  78.  
  79. <Alt+F12> repeats the last build check command without using the dialog (this is the planned pattern for all keyboard shortcuts, compare it with <Ctrl+F9>, <Ctrl+F10> etc).
  80.  
  81.  
  82. PATH AUTOCOMPLETION
  83. All the combo boxes in x2 already support 2xExplorer-style autocompletion where you can type a part (seed) of the name you are trying to locate, and by hitting <up-arrow> the first command from the combo drop-down that contains the seed is fetched; another <up-arrow> fetches the next match etc. This is a useful feature but it is limited in locating only things that are already in the combo history list.
  84.  
  85. Explorer supports a filename autocompletion with an auxiliary window which is incompatible with the remaining workings of x2's combo boxes, so that's out. However from now on you have a new weapon for this task that can be used in many x2's combo boxes, including the addressbar of course. 
  86.  
  87. Type any path/filename or part thereof and hit <F1>; x2 will try to complete the seed to a full path or filename, reading the disc contents. If more than one completion matches are possible for the same seed, you can press <F1> again to see the next one, and so on. The process is identical to the <Tab> autocompletion available in NT DOS boxes.
  88.  
  89.  
  90. MISCELLANEOUS
  91. * The "grep" <Ctrl+G> dialog can search for "binary" characters in files like linefeeds, tabs etc. There are a few predefined special characters but you can type your own too with $xx, where xx is the hex code of the character seeked (you must type 2 digits/letters after $)
  92.  
  93. * Split, merge and shred commands now work
  94.  
  95. * <Alt+Enter> in a dual pane scrap frame when the focused item is a folder or an IDA file, will "load" the inactive pane will either flattened path or IDA contents, respectively.
  96.  
  97. * The script wizard now allows execution in "shell" mode, i.e. commands are executed without the command interpreter (like as if you typed them in the addressbar with ">" prefix). Of course the commands you type should be able to run standalone, e.g. "ren" is out of the question.
  98.  
  99.  
  100. COLUMN SELECTION
  101.  
  102. This is fresh from the production line. One of the main strengths of xplorer2 is its capacity to read extended column information for items, both in filesystem and virtual folders (and zipfolders). From now on a column selection dialog <Alt+K> will allow you to manage the 10s of columns available, which you want to see and in what order. Column widths can be set by dragging the column dividers. Once you set the columns x2 will remember them forever after.
  103.  
  104. The column handling is very complicated if you realize that in x2 you may be browsing "c:\" at one instant and then hit <Bksp> and end up in "my computer" which has its own columns, and then get in some zipfolder which has yet a different set of columns. x2 manages (& remembers) only columns for normal folders and zipfolders, but not "virtual" folders like "my computer". The rationalle is that these virtual folders usually have only a few columns which you would want to see all at once, plus it saves the programming team <g> from the nightmare of managing 100s of different folder types. Filesystem and zipfolders on the other hand can be handled efficiently.
  105.  
  106. The column customization dialog lists both the "stock" columns that x2 understands without depending on windows, and columns supplied by the folder itself. Note that there are some duplicate columns since both x2 and the folder usually have e.g. a "Name" column. You can tell x2's internal columns by the "[S]" added after the name. In general given the choice you should prefer a stock column over a folder's one, since x2 can get its stock columns very efficiently.
  107.  
  108. Now the only thing left is item sorting. That should be in for the next build, in the meantime you can click on the column headers (detailed view) to sort by some column other than "extension". 
  109.  
  110.  
  111.  
  112. LATEST INFORMATION [0.0.0.29] ---------------
  113.  
  114.  
  115. Usability is here. I can't think of a major functionality 2x has that is not already present in xplorer▓. And with all the available registry tweaks (see further down this file) x2 is ready to stand up and be counted. We're there dudes! <g>
  116.  
  117. First you get loads of histories for visited folders, filters and whatnot, combos (instead of edit boxes) throughout and registry persistence thereof.
  118.  
  119. Then there's command execution from all over the place, including scrap frames. These commands can be based on templates using the $-tokens 2xExplorer supports and are saved in history & thus can form the basis of a command palette for actions you perform often, e.g. > windiff "$N" "$I".
  120.  
  121. You get more $-tokens than 2x too, as follows:
  122. $N - Filename (sample.txt)
  123. $B - Basename (sample)
  124. $E - Extension (txt)
  125. $P - Path (c:\\folder)
  126. $F - Path+file (c:\\folder\\sample.txt)  [NEW]
  127. $S - All selected filenames              [NEW]
  128. $A - All selected filenames (fullpaths)  [NEW]
  129. $L - Left (top) pane path (*)
  130. $R - Right (bottom) pane path (*)
  131. $I - Inactive pane path (*)
  132. $Q - Inactive pane focused item name     [NEW]
  133. $G - Inactive pane focused item fullpath [NEW]
  134. $$ - (Escape) for a single $             [NEW]
  135. -----
  136. (*) L/R/I are only meaningful in normal frames (i.e. not scraps) and only for dual pane modes
  137.  
  138. All _lowercase_ versions of the above (e.g. $f) use compact 8.3 file/path names without spaces and strange characters. The new $S & $A are very useful in commands that accept many files in one go.
  139.  
  140. The command compilation in the address bar has gotten smarter too. Except for the plain <Ctrl+Enter> which copies the focused item's name as you compose the command, there are these new keyboard shortcuts:
  141.  
  142. <Ctrl+Shift+Enter>     Copies the 8.3 name
  143. <Ctrl+Alt+Enter>       Copies the fullpath+name
  144. <Ctrl+Shift+Alt+Enter> Copies the 8.3 fullpath+name
  145.  
  146. Let me remind you that you can move the focus while you are composing a command in the addressbar using <Ctrl+arrows>. The composer assistant is smart because it automatically quotes names that contain spaces, too. Kick ass!
  147.  
  148. Last but not least, the batch file generator is back, scrap and whatnot. It supports all the above $-tokens and also counters. For example $1 is a counter starting from 1 (bumped up for each command), $05 starts from 5 and pads with a zero, etc, as per 2xExplorer. The building procedure is a bit different than 2x since you lose the 2nd step ù it will take some getting used to. Also note that in scrap frames there's no sense of a "current directory", so you'd better used fullpaths $P/$F whenever possible.
  149.  
  150. With all that on offer, xplorer▓ is now a proper file manager!
  151. Of course, there's more to come...
  152.  
  153.  
  154. LATEST INFORMATION [0.0.0.28] ---------------
  155.  
  156. The main thing this time round is the "grep" (Find text in files) command. It is quite fanciable inside using memory mapped files, but admitedly without any sensible performance increase over 2xExplorer's item. So much for using exotic OS primitives! In fact performance took a hit, not because of mapped files but due to the more robust handling of case-insensitive searches. 2x's character case conversion was rather silly (albeit fast) and I bet it worked incorrectly, not just in exotic locales but even for accented latin characters. Now things work better but slower; case sensitive searches perform almost as well as in 2x.
  157.  
  158. A nice feature with the new grep command is that it searches for text both in normal and unicode files. I would appreciate some feedback from users in multibyte (MBCS) code pages, wherever you may be!
  159.  
  160. (Note: this new <Ctrl+G> command works in scrap frames, too)
  161.  
  162.  
  163. LATEST INFORMATION [0.0.0.27] ---------------
  164.  
  165. Dual scrap frames? That seems like a wacky idea until you realize that in conjunction with the new "Flatten path" command, scrap frames can be used for deep synchronization, i.e. check two complete folder hierarchies (normal views allow only synchronization of the 2 folders shown). Say you have a project that has the following organization:
  166.  
  167. c:\mydocs
  168. c:\mydocs\res
  169. c:\mydocs\res\research
  170.  
  171. and you want to compare it with a similarly structured hierarchy in d:\temp (notice that the folders below the "root" have identical names):
  172.  
  173. d:\temp\mydocs
  174. d:\temp\mydocs\res
  175. d:\temp\mydocs\res\research
  176.  
  177. This is how you do it simply and efficiently:
  178.  
  179. * open a scrap frame and force it to dual pane mode hitting <Ctrl+O>
  180. * _right_ drag c:\mydocs and drop it in the left scrap pane; pick the flatten path menu command
  181. * ditto for d:\temp\mydocs in the right scrap frame
  182. * Hit <F9> to check synchronization
  183.  
  184. All the differing items will be selected for you, ready for further action. You can either do a simple copy or, more conveniently, use the new Sync-o-paste command (Edit menu) so that each different item ends up in its respective folder (e.g. items from d:\temp\mydocs\res end up in c:\mydocs\res and vice-versa). Ain't that luvly? <g>
  185.  
  186. This deep-sync feature works well when the 2 hierarchies have identical structures. Still <F9> will try its best to decipher the synchronization of arbitrary items thrown in scraps, if matching container folders can be established. Items that can't be decided are hilighted with a little question mark icon overlay.
  187.  
  188. You'll also notice that you can now have the traditional left/right arrangement both in normal and scrap frame windows. However if you are a bit odd like me and prefer the top/bottom dual pane arrangement, you can add a little number 4 in the frame's binDualPaneFlags registry value, as explained a bit further down. Please remember that x2 as it is has tons of customizations that are only available through registry editing -- only bad-ass users need apply <g>
  189.  
  190. Now I'm off for a well deserved snowboarding break, laters!
  191.  
  192.  
  193.  
  194. LATEST INFORMATION [0.0.0.23] ---------------
  195.  
  196. Things are shaping up nicely; the little xplorer▓ starts to resemble its father 2xExplorer. Soon(ish) we'll have yet another parental slaying headline story rivaling that of Zeus vs Cronus. Nearly! :)
  197.  
  198. I have added many of the features from 2x that I personally use frequently. A second folder pane, basic F9 synchronization, copy & move to (F5/F6) etc. More importantly, the program usability has rocketed, with most of the keyboard tricks of 2x present in x2, for pane switching, item selection, folder browsing (Ctrl+Shift+<letter>) and loading in the inactive pane (Alt+browse). See the original keyboard.txt in 2x's documentation for more details. Folder browsing is made more efficient with a combo-bearing address bar (history), back/forward navigation and a single bookmark.
  199.  
  200. Now you can test x2 in more realistic usage scenarios, but don't forget that this is still a very early version and you shouldn't really use it as your regular file manager.
  201.  
  202. Below I document many of the registry keys you may want to play with. X2 is much more tweakable than its measly menus would suggest. In the future many of these controls will be available directly from the program's GUI.
  203.  
  204. The main registry key is: HKEY_CURRENT_USER\Software\ZabaraKatranemia Plc\xplorer2. Whenever you want to change a value, please remember to quit the program first; also have a look at registry.txt in 2xExplorer's documentation for general precautions in registry editing. A [*] next to a value below stands for the default setting. Whenever you want to reset a value, just delete it altogether. When changing values, make sure you switch to decimal (not hex) input mode in regedit.
  205.  
  206.  
  207. NAME              VALUE
  208. ---------------------------------------------------------------------
  209. [general]
  210. bUsePlainIcons    0: normal[*]  1: plain  2: super-plain
  211. bPlainBytesFormat 1: bytes[*]  0: kB/MB etc
  212. bSortZipAsFiles   0: as folders 1: as files[*] 
  213. nThumbSize        90[*] (in pixels for thumbnail view)
  214. szExternalEditor  path for external editor (F4)
  215. szExternalViewer  path for external viewer (F3)
  216. szEditor2Path     path for editor2, the preferred viewer association
  217.  
  218. (you may associate editor2 for F3/F4 setting these values as follows:
  219. szExternalEditor "yourpath\Editor2.exe" /E
  220. szExternalViewer "yourpath\Editor2.exe" /V
  221. notice how the /E & /V command line options are used to set the mode)
  222.  
  223. binConsoleRedirection -> controls how DOS commands (F10) are dealt with [default = 13]
  224.     (any of these bits can be added)
  225.     CPF_CAPTURESTDOUT 1 /* use the smart output capture window;
  226.                            if this bit is 0 then you get the standard msdos box */
  227.     CPF_REUSECMDPROC  4 /* use a persistent command processor -- /K instead of /C */
  228. (note that even when you have the new redirector enabled, you can still get a normal DOS prompt by typing a "$" in the address bar and hitting <Enter>)
  229.  
  230. binMiscOptions -> miscellaneous options [default = 0]
  231.     GIOPT_NOED209      1 /* don't use editor2 at all */
  232.     GIOPT_NOEATCLICKS  2 /* don't eat the first mouse click for inactive views */
  233.  
  234.  
  235. [MainFrame Settings] ////////////
  236. binTreeOptions    a value made up of any of the next "bits" added up
  237.     FTCOPT_SINGLECLICKACTIVATE 1
  238.     FTCOPT_HOVEREXPAND         2 /* checked during drag-drop */
  239.     FTCOPT_DISABLEAUTOREFRESH  4 /* arse saving patch <g> */
  240.     FTCOPT_FOCUSTOACTIVEVIEW   8 /* behaviour after selection */
  241.     FTCOPT_AUTOSYNCVIEW       16 /* keep tree in sync with view */
  242. (e.g. if you want single click & hover expand, set it to 1+2 = 3 which is the default value)
  243.  
  244. binDualPaneFlags (scrap frames have this setting, too)
  245.     DPF_DUAL        1
  246.     DPF_RIGHTACTIVE 2
  247.     DPF_HORIZONTAL  4
  248.     DPF_SHOWHEADERS 8
  249. Here the only bit you need to tweak is DPF_HORIZONTAL since dual panes can be turned on/off from the gui. The default is vertical (left-right alignment). If you want the panes one on top of the other set this value to 5 (=4+1).
  250.  
  251.  
  252. [xxx pane settings] ////////////
  253. (similar settings for both left/right and scrap panes)
  254.  
  255. nMaxListColumnWidth Max column width (pixels) for list view mode (similar to 2x's Usability setting)
  256.  
  257. lvsExtendedStyle    LVS_EX_xxx flags for tooltips etc [* 17441]
  258. The easiest way to find the correct value for this is to run 2xExplorer, select the view style you want from View | Options | Usability (gridlines, single click activation etc), quit 2x and read the number from 2xExplorer's registry settings (HKEY_CURRENT_USER\Software\ZabaraKatranemia Plc\2xExplorer\General Settings\lvsExtendedStyle). Bad-ass programmers can set their preferred extended list view styles from the SDK headers :)
  259.  
  260. binMiscOptions    a value made up of any of the next "bits" added up
  261.     CLVOPT_DISABLEAUTOREFRESH 1 /* patch/efficiency improvement for multi-folder views */
  262.     CLVOPT_NOAUTOSORT         8 /* no automatic item sort after refresh events */
  263.  
  264.  
  265. LATEST INFORMATION [0.0.0.21] ---------------
  266.  
  267. Many things have been improved, the most important being an extensive set of command line options. The command line can look like this (all arguments are optional)
  268.  
  269. xplorer2.exe /F:nn /P /R:rootFolder /S:registryKey /1 /2 leftFolder rightFolder
  270.  
  271. /F specifies which frame to open to begin with. By default a normal browser pane is opened eqivalend to /F:0. If you want to start with a scrap pane instead use /F:1. In this latter case, the "leftFolder" argument is interpreted as a pidl (*.ida) file, having the starting contents of the pane -- previously saved using the Actions | Write contents menu item. More /F:nn frame numbers will be added as different frame window types (e.g. Find windows) are added to x2.
  272.  
  273. /P instructs new instances of x2 to open as separate processes. By default (i.e. without specifying /P) x2 will run in single instance mode. If an additional process is started it will just notify the main one to open a new window and will itself exit immediately -- saving on your system resources.
  274.  
  275. /R is the trickest (and hardest for me) option, which allows x2 browser to be rooted on a folder other than the default desktop. I think windows explorer also has this option with the same letter R. So /R:c:\winnt will start x2 where both its tree and view are rooted on c:\winnt and it won't allow users to go to e.g. d:\ or what have you. This feature is a precursor to the planned OCB.
  276.  
  277. /S is the registry key to read the remaining program options from, as per 2xExplorer. Note that this key can be changed dynamically with Window | Set registry key menu item.
  278.  
  279. /1 or /2 (mutually exclusive) force a single or dual pane window, respectively.
  280.  
  281.  
  282. More developments during the christmas holidays, as a means to getaway from drunk uncles/relatives :)
  283.  
  284.  
  285. LATEST INFORMATION [0.0.0.18] ---------------
  286.  
  287. The source code has just crossed the 1MB boundary. Weird, no? The whole 2xExplorer is 1.25MB source and this little one is nearly there already albeit doing "nothing" in comparison! 
  288.  
  289. Anyway, there are several tasty additions for you to check:
  290. * Thumbnail view (obviously)
  291. * 2 extra stock columns for hard link count and "checksum"
  292. * Command execution from the address bar. Nothing spectacular there but try a dos command (using the $ prompt as per 2xExplorer) and you'll have a pleasant surprise. Instead of a dox box you get a pane which traps all the output of this and any other subsequent commands efficiently and conveniently (easy to copy etc)
  293. * Background processing. Lengthy operations are pushed in a background thread so the GUI will remain responsive. I expect testers will find a hole or two here :) -- even suspected memory leaks.
  294.  
  295. There are a couple of new files in the alpha distribution zip. Readme.txt has quick instructions of how to run xplorer2 and capture its debug messages (which I am interested to see). xplorer2_release.exe is the release version (same program without the internal checks) which I include as a proof that the program is indeed very fast and small, unlike the debug version which is a resource hog in all departments.
  296.  
  297. Now I'll switch to some regular expression matching stuff that I discovered the other day. More on that later.
  298.  
  299. Cheers
  300. Nikos
  301.  
  302.  
  303. LATEST INFORMATION [0.0.0.9] ----------------
  304.  
  305. I think we've reached the end of all the preliminaries. After the tree, this latest build includes the so called scrap frame (you can open one or more from Window menu). The novelty is that the view there can host items from many folders (something similar to the search results view in (2x)explorer). Just drag-drop or paste items and they will be added in the view without actually affecting their location on disk.
  306.  
  307. There's more than meets the eye here, since you can do pretty much anything you can do in a normal folder view like drag-drop, full range of file operations, control selection, see columns and tooltips etc, and still work with many folders at once. The only limitation is that you can only see the "stock" columns (those that xplorer▓ can decipher itself). This is unavoidable since items can be located in both real and virtual folders. BTW there's no way to insert items from zipfolders since that would have involved creating files.
  308.  
  309. The killer feature of this view is that it is autorefreshing: any items modified/deleted/renamed etc will be detected. This must be the most complicated thing I've undertaken so there must be something wrong with it --- so try to devise something to test it to its limits! :)
  310.  
  311. What's the point in such a view? Well to be honest I had the idea a few months ago and I forgot what it really made it worthwhile at the moment of its mental conception <g>. But it can be used for temporarily holding items as you browse folders normally, and then acting on them at once. As batch file generation will eventually be supported in the scrap frame, that certainly would make sense. Plus the same view can be the base for the find results view that is going to be added later --- so it is definitely worthwhile. If you have any paranormal ideas on further possible uses please let me know!
  312.  
  313. Testing-wise I would like to see results from drag-drop operations FROM the scrap pane outwards, especially when there are two or more items selected from DIFFERENT folders. Such multi-folder transfers are using my own dataobject so I would like to know whether it behaves and whether it leaks or not. All my tests went fine but on a particular windows 2000/SP2 machine the darn thing was leaking (its reference / current lock count didn't fall down to zero after the drag-drop was over). Although this seems like a freak incident, please keep an eye open. When you are using this object you will see lines like "MDOB(00cd8580): Release, current lock count = 2" in the DBMON debug tracing window. The "MDOB" part is the giveaway.
  314.  
  315. Another new feature is that you can select list view extended styles by editing the "lvsExtendedStyle" entry in the registry (under HKEY_CURRENT_USER\Software\ZabaraKatranemia Plc\xplorer2). This is a programmer-only tweak since it involves adding up the LVS_EX_xxx values you want to activate, but you can test how the views behave under single-click activation etc.
  316.  
  317. Finally, I haven't heard anything from people using LiteStep or any similar shell replacements. If there's anybody out there receiving this with LiteStep I'd like to hear from you, even if you don't encounter any problems, thanks!
  318.  
  319. Whatever next? Now all the hard-core shell stuff are over. I think I'll start doing background threads for efficiently obtaining time-consuming information like icons and the like. We've got a long way to go yet...
  320.  
  321.  
  322.  
  323. ORIGINAL ANNOUNCEMENT -----------------------
  324.  
  325. Thank you for participating in the alpha (much earlier than beta) testing phase of xplorer▓, the son of 2xExplorer.
  326.  
  327. Junior has got a long way to become a usable file manager, but has reached a significant stage in its development cycle (over 600kB source) to warrant a little bit of testing. Most of the new kernel is in place, comprising:
  328.  
  329. * Full shell integration, with better all-round support for drag/drop, clipboard and context menu, for filesystem, virtual and zipfolders.
  330. * New shell features: infotips and extended columns in detailed view.
  331. * Better autorefresh (sensing of changes in the contents of the foldered browsed) which now spans network and mapped drives; adding/removing drive mappings is also caught.
  332. * Efficient delay-rendering of information just-in-time for instant loading of folders (much faster than 2xExplorer, noticeable in large folders; NOTE: you may not perceive these improvements in this debug build but trust me on this one!). Further improvements are planned in the future using background threads to obtain time-consuming information like icons etc. The present version has minimal threading.
  333. * Unicode- and localization-ready.
  334.  
  335.  
  336. Although most of the "engine" is in place the user interface is at its infancy. In fact I have not spent much time on any usability aspects except for the new cloning feature, which allows launching secondary instances of the program (quickly as threads of the same process). Oh, and that sticky selection thingme. Other than these the program is nearly a pain in the @rse to use in anything but testing. But after all, that's exactly the plan :)
  337.  
  338. I would appreciate if you carefully tested these kernel features (don't worry about the user interface, this will be sorted out in the future). All the enabled menu commands should work (there are a couple that are permanently disabled). Note that the program as it is is stable, but you should be extra vigilant for any freak bugs -- definately not for inexperienced users this!
  339.  
  340. Extreme testers, criminally insane minds <g> all should be recruited in devising abnormal situations for validating the robustness of the kernel in information gathering, file operations, sensing of the environment etc. In particular I would be interested in the performance of the program in:
  341. * Windows 95 & ME: I couldn't find any machine to test it!
  342. * Unusual namespace extensions
  343. * Zipfolders: given past experience you can't test this feature enough :)
  344.  
  345.  
  346. There are some known limitations which I disclose so that you won't waste any time reporting. These will be addressed in the future:
  347. * There's no tree and no linked second pane.
  348. * You can't control which columns to show: it's all or nothing.
  349. * Shift+Delete doesn't work and neither do the F5/F6 commands.
  350. * Autorefresh doesn't work in virtual folders like the recycle bin. The bloody thing keeps all the details of what goes in/out to itself.
  351. * Item sorting is not sorted out yet (pun intended). Only clicks on the column headers in detailed views work, one way.
  352.  
  353.  
  354. The executable is distributed in the debug build version which explains the large size. Don't worry about that, thanks to its WTL-base the release version is under 100kB (!). Including in the distribution is a small program from the platform SDK, for watching the debug trace messages generated by xplorer▓ as it executes. You can copy this output and save it as text from the system menu (Edit | Select All and hit <Enter> to copy) --- it's just a DOS window. You don't have to run this tracer in parallel to xplorer▓ but it may be helpful especially when things go wrong.
  355.  
  356. There is a number of ways things can go wrong:
  357. * An outright crash
  358. * An assertion error
  359. * Memory leaks in the end of the run
  360.  
  361. In all cases the extensive tracing output of what the program is doing will be helpful, so if things go pear-shaped don't forget to copy all the output and send it to me. In case of assertion errors (considered more severe) please take a snapshot of the error message box with <Alt+PrintScreen> and send me the GIF/JPG along with the output up to that point. Some assertions are benign so just try to press "I" (for Ignore) to see if the program will resume gracefully.
  362.  
  363. Finally, if some programmer has access to Purify or similar leak checker, I would appreciate a check. The debug output may catch some leaks (printed when you quit the program). You shouldn't see many of those however. Actually I hope you don't see any.
  364.  
  365. Any remarks (but not for the user interface!) and bug reports to the usual addresses:
  366.  
  367. e-mail: n.bozinis@ic.ac.uk
  368. forums: www.netez.com/bbs
  369. website: www.netez.com/2xExplorer (for the latest alpha version)
  370.  
  371. Your help will be greatly appreciated, and is considered an important step for the final article. There's a long way ahead and I don't know when this is going to be, but as my grandmother used to say, "the beginning is half of the whole effort".
  372.  
  373. Cheers!
  374. Nikos
  375.  
  376. PS. Please be careful not to experiment with any important files/data.
  377.  
  378.  
  379. NOTE: The tracer program included in this distribution (dbmon.exe) only works for winNT and related, but it doesn't work for win9x (and perhaps not ME either). If you want to checkout the output of xplorer▓ in these OS you need another program. Dependency Walker comes to mind (http://www.dependencywalker.com/) which apart from being a brilliant program to have around anyway, also monitors the debug message stream (version 2.1). Using it is slightly more complicated since you need to "open" xplorer▓ from the Dependency Walker and then use the Profile menu to run it. Deselect all the options in the "Start Profiling..." dialog except for the "Log debug output messages" (see the snapshot at www.ps.ic.ac.uk/~umeca74/dependWalker.jpg) and start the run. Then use xplorer▓ and you'll see messages being generated in the lowermost pane in Dependency Walker (you don't really care about the other panes in this situation). To copy the output, just right-click in the pane and select & copy. 
  380.